<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        /*将属性全部放在对象类中*/
   function A (){//对象中的类
       this.abc=12;//属性
   }
   A.prototype.show=function(){//方法
      alert(this.abc);
   };
   var objA=new A();//创建一个对象A
        objA.show();//对象A的方法

//   B继承A的属性、方法

//  继承A的属性
   function B(){
//   this -> new B()
     A.call(this);//******this给A的对象加的属性，变成给B的对象加的属性
//       通过call继承父级的属性
   }
   var objB=new B();//创建一个对象B
       alert(objB.abc);//验证B继承了A中的属性


//   继承A的方法
        B.prototype.fn=function(){//假如B上还有其他的自己方法
            alert('abc');
        };
        objB.fn();

//     解决引用问题，   objA不会有objB中的fn方法
        for(var i in A.prototype){
            B.prototype[i]=A.prototype[i];
        }

        //B.prototype=A.prototype;//直接将A.prototype赋给B.prototype//**引用

       objB.show();//这样B上就有show()这个方法





        objA.fn();//objA有objB中的fn方法

    </script>
</head>
<body>
<!--JS  属性、方法-->
<!--继承父级的属性、方法-->
</body>
</html>